29c6ad3aada00f324995ab137259de2f39e25813,Net2Plan-Examples/src/main/java/com/net2plan/examples/ocnbook/offline/Offline_fa_xp11PathProtection.java,Offline_fa_xp11PathProtection,executeAlgorithm,#NetPlan#Map#Map#,59
Before Change
/* Add all the k-shortest candidate routes to the netPlan object carrying no traffic */
final DoubleMatrix1D linkCostVector = shortestPathType.getString().equalsIgnoreCase("hops")? DoubleFactory1D.dense.make (E , 1.0) : netPlan.getVectorLinkLengthInKm();
netPlan.addRoutesFromCandidatePathList(linkCostVector.toArray() , "K", Integer.toString(k.getInt ()), "maxLengthInKm", Double.toString(maxLengthInKm.getDouble () > 0? maxLengthInKm.getDouble () : Double.MAX_VALUE));
final int P = netPlan.getNumberOfRoutes();
/* Create the optimization problem object (JOM library) */
After Change
private InputParameter type11 = new InputParameter ("type11", "#select# linkDisjoint srgDisjoint" , "Type of 1+1 protection: 1+1 link disjoint (primary and backup paths have no link in common), and 1+1 srg disjoint (primary and backup paths have no SRG in common)");
@Override
public String executeAlgorithm(NetPlan netPlan, Map<String, String> algorithmParameters, Map<String, String> net2planParameters)
{
/* Initialize all InputParameter objects defined in this object (this uses Java reflection) */
InputParameter.initializeAllInputParameterFieldsOfObject(this, algorithmParameters);
if (!shortestPathType.getString().equalsIgnoreCase("km") && !shortestPathType.getString().equalsIgnoreCase("hops"))
throw new Net2PlanException("Wrong shortestPathType parameter");
if (type11.getString ().equalsIgnoreCase("srgDisjoint") && (netPlan.getNumberOfSRGs() == 0)) throw new Net2PlanException("No SRG was defined");
/* Basic checks */
final int N = netPlan.getNumberOfNodes();
final int E = netPlan.getNumberOfLinks();
final int D = netPlan.getNumberOfDemands();
final int S = netPlan.getNumberOfSRGs();
final double PRECISION_FACTOR = Double.parseDouble(net2planParameters.get("precisionFactor"));
if (N == 0 || D == 0 || E == 0) throw new Net2PlanException("This algorithm requires a topology with links, and a demand set");
/* Remove all unicast routed traffic. Any multicast routed traffic is kept */
netPlan.removeAllUnicastRoutingInformation();
netPlan.setRoutingType(RoutingType.SOURCE_ROUTING);
/* Add all the k-shortest candidate routes to the netPlan object carrying no traffic */
final DoubleMatrix1D linkCostVector = shortestPathType.getString().equalsIgnoreCase("hops")? DoubleFactory1D.dense.make (E , 1.0) : netPlan.getVectorLinkLengthInKm();
netPlan.addRoutesFromCandidatePathList(netPlan.computeUnicastCandidatePathList(linkCostVector , k.getInt(), maxLengthInKm.getDouble(), -1, -1, -1, -1, -1 , null));
final int P = netPlan.getNumberOfRoutes();
/* Create the optimization problem object (JOM library) */